package com.yykj.hospital.server.model.entity;

import com.yykj.hospital.client.enums.CashFeeTypeEnum;
import io.swagger.annotations.ApiModelProperty;
import lombok.AllArgsConstructor;
import lombok.Builder;
import lombok.Data;
import lombok.NoArgsConstructor;

import javax.persistence.*;
import java.math.BigDecimal;

/**
 * Created by chendg on 2021/9/9 0009.
 */
@Data
@Entity
@Builder
@NoArgsConstructor
@AllArgsConstructor
public class HospitalSetting {

	@Id
	private Integer hospitalId;

	/**
	 * 问诊基数 不能为小数 最大为99999999（8位） 最小为 1 默认100
	 */
	private Integer consultationBase;

	/**
	 * 问诊评分 1-5的整数 ，不能为小数，默认5分
	 */
	private Integer score;

	/**
	 * 响应时间 整数，不能为小数， 最大为60 最小为0，默认15min
	 */
	private Integer responseTime;

	private Integer cnt;

	@ApiModelProperty("任务创建方医院，审核类型，0医生自己决定，1需要审核，2，不需要审核")
	private Integer consultationSendCheck = 0;

	@ApiModelProperty("任务接收方医院，审核类型，0不需要审核，1需要审核")
	private Integer consultationReceiveCheck = 0;

	@ApiModelProperty("与提现类型相关，当百分比时，提现百分比(默认0.05)，当固定额时，固定值(默认10元)")
	private BigDecimal cashPrice = BigDecimal.ZERO;

	@ApiModelProperty("提现类型：percent 百分比(默认),fixed 固定额")
	@Enumerated(EnumType.STRING)
	private CashFeeTypeEnum cashFeeType;

	@ApiModelProperty("最小提现金额,默认: 1 ")
	private BigDecimal minCashPrice;

	@ApiModelProperty("最大提现金额,默认:10000")
	private BigDecimal maxCashPrice ;

	@ApiModelProperty("每日提现次数:默认3")
	private Integer dayCashCnt = 3;

	//最小值，手续费，单次提现最大值，每日提现次数
	public static HospitalSetting defaultHospitalSetting(Integer hospitalId){
		return HospitalSetting.builder()
				.hospitalId(hospitalId)
				.consultationBase(100)
				.responseTime(15)
				.score(5)
				.cnt(5)
				.consultationSendCheck(0)
				.consultationReceiveCheck(0)
				.cashFeeType(CashFeeTypeEnum.percent)
				.cashPrice(new BigDecimal("0.05"))
				.minCashPrice(BigDecimal.ONE)
				.maxCashPrice(new BigDecimal("10000"))
				.dayCashCnt(3)
				.build();
	}


}
